10 SYS36864 20 .OPT OO 30 *= $C000 40 ; DIESES PROGRAMM DEFINIERT ZWEI 50 ; NEUE BASICBEFEHLE 60 ; - BEEP ERZEUGT EINEN TON 70 ; - ERASE X LOESCHT BILDSCH. ZEILE X 80 ; NIKOLAUS HEUSLER, MUENCHEN, 3.91 100 IBAS =776;VEKTOR FUER BASICBEFEHL 110 INTER =$A7AE;INTERPRETERSCHLEIFE 120 OLDBAS =$A7E4;ALTEN BEFEHL AUSFUEHREN 130 SID =54272;SOUNDCHIP BASISADRESSE 140 CHRGET =115;NAECHSTES ZEICHEN HOLEN 150 ILLQUAN =$B248;ILLEGAL QUANTITY ERROR 160 GETX =$B79E;HOLT BYTE-WERT NACH X 170 CLRX =59903;LOESCHT BILDSCHIRMZEILE X 180 OK =$E18D;OK AUSGEBEN 190 TMP =2;ZWISCHENSPEICHER 200 PTR =122;ZEIGER AUF BASICBEFEHL 300 ; --- NEUE BEFEHLE DEFINIEREN 310 LDA #NEUBEF;ZEIGER AUF NEUE ROUTINE 320 STA IBAS:STY IBAS+1;VEKTOR VERBIEGEN 330 JMP OK;OK AUSGEBEN 400 ; --- NEUE BEFEHLS-ROUTINE 410 NEUBEF LDA PTR:LDY PTR+1:STA TMP:STY TMP+1;BASIC-POINTER RETTEN:LDX #0 420 ; --- TEST, OB BEFEHL NR. 1 430 TEST1 JSR CHRGET;NAECHSTES ZEICHEN HOLEN:CMP TEXT1,X;BEFEHLSWORT PRUEFEN 440 BNE NEIN1;WENN NICHT, DANN BEFEHL 2 PRUEFEN 450 INX:CPX #4;LAENGE DES BEFEHLSWORTES:BNE TEST1;NICHT ERREICHT, WEITER TESTEN 460 JSR PIEPS;BEFEHL AUSFUEHREN 470 ; --- NEUEN BEFEHL FERTIG AUSGEFUEHRT 480 FERTIG JMP INTER;WEITER MIT INTERPRETERSCHLEIFE 500 ; --- WAR NICHT DER ERSTE BEFEHL 510 NEIN1 LDA TMP:LDY TMP+1:STA PTR:STY PTR+1;POINTER ZURUECKHOLEN:LDX #0 520 ; --- TEST, OB BEFEHL NR. 2 530 TEST2 JSR CHRGET;NAECHSTES ZEICHEN HOLEN:CMP TEXT2,X;BEFEHLSWORT PRUEFEN 540 BNE NEIN2;WENN NICHT, DANN FERTIG 550 INX:CPX #5;LAENGE DES BEFEHLSWORTES:BNE TEST2;NICHT ERREICHT, WEITER TESTEN 560 JSR LOESCH;BEFEHL AUSFUEHREN 570 JMP FERTIG;UND WEITER WIE OBEN 600 ; --- WAR NICHT DER ZWEITE BEFEHL 610 NEIN2 LDA TMP:LDY TMP+1:STA PTR:STY PTR+1;POINTER ZURUECKHOLEN 620 JMP OLDBAS;ALTEN BASIC-BEFEHL AUSFUEHREN 700 ; --- ROUTINEN DER NEUEN BEFEHLE 710 ; --- BEFEHL 1 - TON AUSGEBEN 720 PIEPS JSR CHRGET;NAECHSTES ZEICHEN:LDA #0:LDX #24;SID-REGISTER LOESCHEN 730 CLRSID STA SID,X:DEX:BPL CLRSID;NULL IN ALLE REGISTER SCHREIBEN 740 LDA #15:STA SID+24;LAUTSTAERKE AUF 15 750 LDA #100:STA SID+1;TONHOEHE:LDA #240:STA SID+6;WELLENFORM 760 LDA #17:STA SID+4;TON EIN 770 LDX #0:LDY #0;WARTESCHLEIFE 780 WAIT NOP:DEX:BNE WAIT:DEY:BNE WAIT;WARTET CA. 1/2 SEKUNDE 790 LDA #16:STA SID+4;TON AUS:RTS;FERTIG 800 ; BEFEHL 2 - BILDSCHIRMZEILE LOESCHEN 810 LOESCH JSR CHRGET;NAECHSTES ZEICHEN:JSR GETX;NUMMER DER ZEILE HOLEN 820 CPX #25;GROESSER ALS 24:BCC STIMMT;KLEINER, DANN OK 830 JMP ILLQUAN;SONST FEHLERMELDUNG AUSGEBEN 840 STIMMT JSR CLRX;BILDSCHIRMZEILE NR. X LOESCHEN:RTS;FERTIG 900 ; --- BEFEHLS-TEXTE 910 TEXT1 .ASC "BEEP";TEXT IM ASCII-CODE 920 TEXT2 .ASC "ERASE";TEXT IM ASCII-CODE